import router from '@/router/index'
import { getToken } from '@/composables/auth'
import { showMessage } from '@/composables/utils'
import {showPageLoading , hidePageLoading} from '@/composables/utils'
import { useBlogSettingsStore } from '@/stores/blogsettings'


// 全局路由前置守卫
router.beforeEach((to, from, next) => {
    console.log('==> 全局路由前置守卫')
    //显示加载的动画
    showPageLoading();

    // 若用户想访问后台（以 /admin 为前缀的路由）
    // 未登录，则强制跳转登录页
    let token = getToken()
    if (!token && to.path.startsWith('/admin')) {
        showMessage('请先登录', 'warning')
        next({ path: '/login' })
    } else if(token && to.path == '/login'){
        showMessage('您已登录', 'success')
        next({ path: '/admin/index' })
    } else if (!to.path.startsWith('/admin')) {
        // 如果访问的非 /admin 前缀路由
        // 引入博客设置 store
        let blogSettingsStore = useBlogSettingsStore()
        // 获取博客设置信息并保存到全局状态中
        blogSettingsStore.getBlogSettings()
        next()
    }
    else {
        next()
    }
})

// 全局路由后置守卫
router.afterEach((to, from) => {
    console.log('==> 全局路由后置守卫')
    // 动态设置页面 Title 从Router中拿到标题属性 
    let title = (to.meta.title ? to.meta.title : '') + ' - Weblog'
    document.title = title
    //请求加载完成后 结束动画
    hidePageLoading()
    
})
